package com.zzl.mine.util;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import org.apache.commons.lang3.StringUtils;

import com.zzl.mine.pojo.page.PageData;
import com.zzl.mine.tool.CalendarUtil;

/**
 * @description 处理页面请求查询的参数
 * @author rambo
 * @date 2018年6月20日 下午3:10:43
 */
@SuppressWarnings("ALL")
public class PdUtil {

	/**
	 * @description 如果请求参数非空则去除参数两端的空格再次保存
	 * @param pd 页面请求参数Map
	 */
	public static void rePut(PageData pd) {
		@SuppressWarnings("unchecked")
		Set<String> keySet = pd.keySet();
		for (String key : keySet) {
			String value = (String) pd.get(key);
			if (StringUtils.isNotBlank(value)) {
				pd.put(key, value.trim());
			}
		}
	}

	/**
	 * 注意：结束时间命名有要求，必须以end开头，这里考虑了多个日期查询条件的情况
	 * @description 日期结束时间查询条件天数加一
	 * @param queryParams 页面请求参数Map
	 */
	@SuppressWarnings({"unchecked", "rawtypes"})
	public static void putEndDateNew(Map queryParams) {
		Map<String, String> map = new HashMap<String, String>();
		Set<String> keySet = queryParams.keySet();
		for (String key : keySet) {
			if (StringUtils.startsWith(key, "end")) {//结束时间name以end字符串开头
				String value = (String) queryParams.get(key);
				if (StringUtils.isNotBlank(value)) {//结束时间参数值不为空
					Date endDate = CalendarUtil.stringToDate(value, "yyyy-MM-dd");
					Date endDateNew = CalendarUtil.getWantedDate(endDate, null, 1, null, null, null);
					//比如页面传过来的结束时间name是endDate，那么我们需要的name就是endDateNew
					map.put(key + "New", CalendarUtil.dateToString(endDateNew, "yyyy-MM-dd"));
				}
			}
		}
		queryParams.putAll(map);//追加Map集合
	}

}
